package recital;

import auxiliares.Date;

/**
 * TODO: description
 */
public class Recital {

    private Estadio estadio;
    private Date fecha;
    private int cantEntradasMaximas;
    private int precioEntradas;
    private int entradasVendidas;

    public Recital(final Estadio estadio, final int precioEntradas, Date unaFecha) {
        this.estadio = estadio;
        this.fecha = unaFecha;
        this.cantEntradasMaximas = estadio.getCapacidad();
        this.precioEntradas = precioEntradas;
        this.entradasVendidas = 0;
    }

    /**
     * Incrementa en 1 la cantidad de entradas vendidas.
     */
    public void venderEntrada() {
        if (this.getCantEntradasMaximas() == this.getEntradasVendidas()) {
            System.out.println("se vendieron todas las entradas");
        } else {
            this.setEntradasVendidas(this.getEntradasVendidas() + 1);
        }
    }
    
    /* / getters y setters / */
    public int obtenerRecaudacion() {
        return this.getEntradasVendidas() * this.getPrecioEntradas();
    }

    public Estadio getEstadio() {
        return this.estadio;
    }

    public void setEstadio(final Estadio estadio) {
        this.estadio = estadio;
    }

    public int getCantEntradasMaximas() {
        return this.cantEntradasMaximas;
    }

    public void setCantEntradasMaximas(final int cantEntradasMaximas) {
        this.cantEntradasMaximas = cantEntradasMaximas;
    }

    public int getPrecioEntradas() {
        return this.precioEntradas;
    }

    public void setPrecioEntradas(final int precioEntradas) {
        this.precioEntradas = precioEntradas;
    }

    public void setFecha(final Date fecha) {
        this.fecha = fecha;
    }

    public Date getFecha() {
        return this.fecha;
    }

    public void setEntradasVendidas(final int entradasVendidas) {
        this.entradasVendidas = entradasVendidas;
    }

    public int getEntradasVendidas() {
        return this.entradasVendidas;
    }
    
    @Override
    public String toString() {
    	return "Estadio: " + estadio.toString() + " el " + this.fecha.toString();
    }
    @Override
    public boolean equals(Object reci) {
    	return this.estadio.equals(((Recital) reci).getEstadio()) && this.fecha.equals(((Recital) reci).getFecha());
    }
}
